//Variaveis
var pressedAlt = false;
var itens = new Array('livro', 'magazine', 'midia');

// CONSTANTES
TIPO_BOOK = 1;
TIPO_MAGAZINE = 2;
TIPO_MIDIA = 3;
  
/**
 * URL padrão da app
 */
var url_base = get_base_url();

/* Ler o KeyDow. caso for as tecalas ALT + N o show_form() é chamado*/
$(document).keydown(function (e) {
    if(e.which == 18) // ALT
        pressedAlt = true; 
        
    //Se ALT foi clicado e a tecla N
    if((pressedAlt == true && e.which == 78) && !strInArr(itens, get_class_url())) { 
        show_form(); 
        pressedAlt = false;
    }else if((pressedAlt == true && e.which == 78) && strInArr(itens, get_class_url())){
        pressedAlt = false;
        location = url_base + strInArr(itens, get_class_url()) + '/cadastrar';
    }
    
    if(e.which == 27  && !strInArr(itens, get_class_url())) { // Se ESC fecha os forms
        $("#form-insert").fadeOut();
        $("#form-update").fadeOut();
        $("#messege-alert").remove();
        scroll_to('#page-content');
    }
});

$(document).ready(function(){
    //TOOLTIP    
    $( document ).tooltip({
        position: {
            my: "center bottom-20",
            at: "center top",
            using: function( position, feedback ) {
                $( this ).css( position );
                $( "<div>" )
                .addClass( "arrow" )
                .addClass( feedback.vertical )
                .addClass( feedback.horizontal )
                .appendTo( this );
            }
        }
    });
    

      
    /**
     * Ação para os botões reponsáveis pela ação back-end
     * Desabilita o botão
     */
    $('.button').click(function(){
//        $(".button").attr("disabled", true); 
    });
    
     /**
      * Ativa o botão caso esteja desabilitado
      */
    $(".button").removeAttr("disabled");

    //Remove as DIVS de ALERTAS depois de 20s
//    setTimeout(function() {
//        $('#show-alert').fadeOut()
//    }, 20000);
        
    //Matem visão na mensagens de ALERT caso existam
    if($("#messege-alert")[0]){
        scroll_to('#show-alert ');
    }
            
    //Pinta de cinza claro as linhas impares da tabela
    $('#datagrid table > tbody > tr:odd').addClass('odd');
            
    //Remove a class odd quando o obj estiver inativo ou ativo
    $(".inactive, .selected").removeClass("odd");
    
    //Aplica o efeito para esconder e mostrar o conteúdo central da página.
//    $("#page-title").toggle(
//        function(){
//            $("#page-view, #show-alert, #page-infor").slideUp();
//        },
//
//        function(){
//            $("#page-view,#show-alert, #page-infor").slideDown();
//        }
//     );
                
    //selecionando registros
    $('table > tbody > tr > td > :checkbox').bind('click change', function(){
        var tr =$(this).parent().parent();
        
        if($(this).is(':checked')){
            $(tr).addClass('selected');
        }else 
            $(tr).removeClass('selected');
    });
            
    $('#select-all').click(function(){
        $('table > tbody > tr > td > :checkbox').attr('checked', 
            $(this).is(':checked')).trigger('change');
    });
    
    //Tooltip
    //$("[title]").tooltip({ effect: 'fade'});
});


/**
 * Volta a página
 */
function back_page() {
    history.back();
}
/**
 * Verifica se valor estar no array
 */
function strInArr(arr, str) {
    for(i = 0, j = arr.length; i < j; i++) {
        for (var patch in str){
            if(arr[i] == str) {
                return arr[i];
                break;
            }
        }
    }
    return false;
}

/**
 * Remove item de array
 */
function removeItem(array, item){
    for(var i in array){
        if(array[i]==item){
            array.splice(i,1);
            break;
        }
    }
}

/**
 * Aplcia efeito scroll indo até a div passado como parametro
 */
function scroll_to(name_div) {
    $('html, body').animate({
        scrollTop: $(name_div).offset().top
    }, 1000);
}

/**
 * Retorna mesangem de erro. Util para as requisições ajax
 */
function erro_message() {
    return '<div style="display: block;" id="messege-alert" class="erro"><img src="' + url_base + 'assets/img/close_16.png" width="16" height="16" class="bt-close" onclick="close_message(\'#messege-alert\')";/><div id="img-alert"><img src="' + url_base + 'assets/img/error.png"/> </div><h2>ERRO</h2><div class="alert_text">Ocorreu um erro ao tentar obter os dados. Tente novamente!</div></div>';
}

/**
 * Remove div com mensagens exibidas para o usuário
 */
function close_message(name_div) {
    $(name_div).fadeOut();
}

/**
 * Retorna os valores do checkbox
 */
function get_code(){
    var codSelecionados = new Array();
    $("input[type=checkbox][name='cod[]']:checked").each(function(){
        codSelecionados.push($(this).val());
    });
    return codSelecionados;
}

/**
 * Verifica se objeto é um array
 */
function isArray(o){
	return (typeof(o.length)=="undefined") ? false : true;
}

function message_delete_item(item){
    return ('<p>Deseja realmente excluir o Item:<br /><span style="color: #cc0000; font-size: 15px; font-weight: bold;">'  + item + '?' + '</span> <br />Uma vez excluído não será possível recuperar os dados.\n\
        <p><b><i>- Será perdido toda movimentação, como os EMPRÉSTIMOS ligados ao item...</i></b></p><br />\n\
        <p><b>TEM CERTEZA QUE DESEJA EXCLUIR?</b></p>');
}

/**
 * Retorna o valor da variavel GET, se ela não existir é retornado FALSE
 */
function getQueryVariable(variable)
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){return pair[1];}
    }
    return(false);
}

/**
 * retorna a url base 
 */
function get_base_url() {
   return location.protocol + "//" + location.hostname + 
      (location.port && ":" + location.port) + "/";
}

/**
 * Retorna a class clicada/da vez
 * A última palavra da url /
 */
function get_class_url() {
    var endereco = location.pathname; 
    var array = endereco.split('/'); 
    var ultimo = array.pop();
    var isola = ultimo.split('.');
  
    return clicado = isola[0];
}